 \documentclass[c,12pt]{beamer}
 %
 % Packages pour le français
\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{libertine}
\usepackage{color}
\usepackage{graphicx}
 %
 % pour un pdf lisible à l'écran
 % il y a d'autres choix possibles 
 \usepackage{pslatex}
 %
 % pour le style et couleurs
 \usetheme{Marburg}
 %
 % contenu de la page de titre
 \title{mTreebone}
 \subtitle{A Hybrid Tree/Mesh Overlay for Application-Layer Live Video
Multicast}
 \author{Théo \textsc{Chamley} \& Pierre \textsc{Labiausse}}
 \date{23/05/2012}

%\AtBeginSection[]{
%  \begin{frame}
%  \frametitle{Table of contents}
%  \tableofcontents[currentsection, hideothersubsections]
%  \end{frame} 
%}

\setcounter{tocdepth}{1}
 %
 % Fin du préambule
 
\begin{document}

\frame{\titlepage} 

%\begin{frame}
%\frametitle{Table of contents}
%  \tableofcontents
%\end{frame} 


\section{Introduction}
\subsection{A short presentation}
\begin{frame}
\frametitle{What is mTreebone for?}
\begin{itemize}
	\item Application layer overlay for live video multicast
	\item Timing constraints:
	\begin{itemize}
		\item Negligible startup delay
		\item Smooth playback
		\item Negligible playback latency
	\end{itemize}
	\item Environmental constraints:
	\begin{itemize}
		\item Node churn
		\item Node heterogeneity
		\item Network problems
		\item High data volume
	\end{itemize}
\end{itemize}

\end{frame}

\subsection{P2P content dissemination paradigms}
\begin{frame}
\frametitle{P2P content dissemination}
\framesubtitle{Two existing paradigms}
\begin{columns}
	\begin{column}{5cm}
	Trees [Push model]
	\begin{itemize}		
		\item Pros
		\begin{itemize}
			\item Short latencies
		\end{itemize}
		\item Cons
		\begin{itemize}
			\item Vulnerable to churn
			\item Inexploited bandwidth
		\end{itemize}
	\end{itemize}
	\end{column}
	\begin{column}{5cm}
		Meshes [Pull model]
		\begin{itemize}
			\item Pros
			\begin{itemize}
				\item Robust to churn
			\end{itemize}
			\item Cons
			\begin{itemize}
				\item Longer delays
				\item Control overhead
			\end{itemize}
		\end{itemize}
	\end{column}
\end{columns}
\end{frame}

\subsection{Combining both paradigms}
\begin{frame}
\frametitle{Why not combining both paradigms?}
Rationale: Most of the data blocks delivered through a mesh overlay essentially follow a specific tree structure or a small set of trees.
\begin{itemize}
	\item Performance of the mesh overlay heavily depends on common internal nodes
	\item Organize the stable ones in a tree, all other nodes in a mesh
	\item Aims:
	\begin{itemize}
		\item Push the data rapidly ``vertically'' along the treebone
		\item Accomodate dynamic nodes by letting them pull ``horizontally'' via the mesh
		\item Exploit the potential bandwidth of all nodes
	\end{itemize}
\end{itemize}

\end{frame}

\subsection{Challenges}
\begin{frame}
\frametitle{Challenges in mTreebone}
  \begin{itemize}
    \item Which nodes can be considered stable?
    \item How do we place them in the tree?
    \item How do we reconcile the tree and the the mesh overlay?
  \end{itemize}
\end{frame}

\section{Treebone mechanisms}
\subsection{Node selection}
\begin{frame}
  \frametitle{How do we select the treebone's nodes?}
  \framesubtitle{Which nodes are considered as stable?}
  \begin{columns}
    \begin{column}{5cm}
      \begin{itemize}
        \item Pareto distribution
        \item A node is considered as stable when it has been in the overlay more than \textcolor{red}{30\% of the remaining session time}.
        \item Aim: maximize nodes expected service time
      \end{itemize}
    \end{column}
    \begin{column}{5cm}
      \includegraphics[scale=0.37]{images/treebone_evolution.jpg}
      \begin{itemize}
        \item For bootstrapping: randomized promotion at the beginning of the session.
      \end{itemize}
    \end{column}
  \end{columns}
\end{frame}

\subsection{Tree optimization}
\begin{frame}
\frametitle{How do we optimize the tree?}
\framesubtitle{High-Degree Preemption - Low-Delay Jump}
\begin{columns}
  \begin{column}{5cm}
    \begin{itemize}
      \item If a treebone node $x$ has more children than a treebone node closer to the source, $x$ takes its place in the treebone
    \end{itemize}
	\centering
    \includegraphics[scale=0.4]{images/high-degree-preemption.jpg}
  \end{column}
  \begin{column}{5cm}
	\begin{itemize}
		\item If a treebone node closer to the source than $x$'s parent has enough bandwidth, $x$ attaches itself to this node.
	\end{itemize}
	\centering
	\includegraphics[scale=0.4]{images/low-delay-jump.jpg}
  \end{column}
\end{columns}
\end{frame}

\begin{frame}
\frametitle{How do we optimize the tree?}
\framesubtitle{Result}
	\begin{itemize}
		\item Average depth of the treebone minimized when both algorithms terminate at all treebone nodes.
		\item Similar method to the market model used in Sepidar and GLive (cf lecture 7)
	\end{itemize}	
\end{frame}

\section{Mesh-Tree collaboration}
\begin{frame}
\frametitle{Tree-push pointer \& Mesh-pull window}
  \begin{itemize}
    \item The tree is the main delivery system. 
    \item The mesh takes care of missed packets and takes over when the tree fails.
  \end{itemize}
  \centering
  \includegraphics[scale=0.5]{images/buffer.jpg}
\end{frame}


\section{Experimental results}
\begin{frame}
\frametitle{Timing measurements}
\framesubtitle{Comparison with CoolStreaming (mesh system) and ChunkySpread (multiple-tree system)}
	\begin{itemize}
		\item Simulation results
			\begin{itemize}
				\item Better startup latencies than both
				\item Transmission delays are slightly better than ChunkySpread
				\item Data loss rates are slightly better than CoolStreaming
			\end{itemize} 
	\end{itemize}
        \centering
        \includegraphics[scale=0.24]{images/graphs.jpg}
\end{frame}

\begin{frame}
\frametitle{Cost and churn resistance}
	\begin{itemize}
		\item Protocol cost
		\begin{itemize}
			\item More than 2 control messages for 1 data message (mainly due to the mesh)
			\item Lower ratio than the mesh-only system:
			\begin{itemize}
				\item Treebone is the main data route
				\item Stable nodes  $\rightarrow$ Very low maintenance cost
			\end{itemize}
			\item In terms of volume, less than 1\% overhead
		\end{itemize} 
		\item Churn resistance
		\begin{itemize}
			\item Typical churn $\rightarrow$ Data loss of a mesh system (3.3\%)
			\item Stable under wide range of churn
		\end{itemize}
	\end{itemize}
\end{frame}

\section{Limits \& drawbacks}
\begin{frame}
\frametitle{Limits \& drawbacks}
\begin{itemize}
  \item The playback delay may be considered as a little high (median of playback delays is 40sec on PlanetLab).
  \item There is no explanation on how we find the stable nodes in case of an endless session. However, that can be solved quite easily.
  \item Several negative aspects of the paper itself
	\begin{itemize}
		\item Some details about the protocol are not clear, in particular the relation between treebone nodes and outskirt ones.
		\item Some experimental results could have been explained, and not just presented.
	\end{itemize}
\end{itemize}

\end{frame}


\end{document}
